public <T_FIELD1, T_FIELD2, T_FIELD3> T_OBJ_TYPE tryCreate(final T_OBJ_TYPE object,
                                                               final TableField<T_REC_TYPE, T_FIELD1> keyField1,
                                                               final TableField<T_REC_TYPE, T_FIELD2> keyField2,
                                                               final TableField<T_REC_TYPE, T_FIELD3> keyField3,
                                                               final Consumer<T_OBJ_TYPE> onCreateAction) {

        return JooqUtil.contextResult(connectionProvider, context ->
                tryCreate(context, object, keyField1, keyField2, null, onCreateAction));
    }
Will try to insert the record, but will fail silently if it already exists.
It will use keyField1 and keyField2 (a compound key) to retrieve the persisted
record if it already exists.

@return The persisted record
stroom-db-util/src/main/java/stroom/db/util/GenericDao.java