code: @SuppressWarnings("squid:S2077")
      @Override
      public int update(final SqlStatement sql, final List<SqlVisitor> sqlVisitors) throws DatabaseException {
          if (sql instanceof CallableSqlStatement) {
              throw new DatabaseException("Direct update using CallableSqlStatement not currently implemented");
          }
  
          class UpdateStatementCallback implements StatementCallback {
              @Override
              public Object doInStatement(Statement stmt) throws SQLException, DatabaseException {
                  String[] sqlToExecute = applyVisitors(sql, sqlVisitors);
                  if (sqlToExecute.length != 1) {
                      throw new DatabaseException("Cannot call update on Statement that returns back multiple Sql objects");
                  }
                  Scope.getCurrentScope().getLog(getClass()).fine(LogType.WRITE_SQL, sqlToExecute[0]);
                  return stmt.executeUpdate(sqlToExecute[0]);
              }
  
  
              @Override
              public SqlStatement getStatement() {
                  return sql;
              }
          }
          return (Integer) execute(new UpdateStatementCallback(), sqlVisitors);
      }
docs: the query is composed.