@Override
    public void apply(final int position, PreparedStatement statement, StatementContext ctx) throws SQLException {
        if (value == null) { // remove this clause when constructor is no longer public
            statement.setNull(position, sqlType); // lgtm[java/dereferenced-value-may-be-null] - guarded by constructor check
        } else {
            if (sqlType == null) {
                statement.setObject(position, value);
            } else {
                statement.setObject(position, value, sqlType);
            }
        }
    }
Bind a vendor-supported object with the given SQL type.
@param value the value to call @link {@link PreparedStatement#setObject(int, Object, int)} with
@param sqlType the type to bind
@return the Argument
@see java.sql.Types
core/src/main/java/org/jdbi/v3/core/argument/ObjectArgument.java