code: private ImmutableTriple<Integer,ResultSet,SQLWarning> update(final TreeMap<Integer,Parameter> parameters) throws SQLException {
  
          checkClosed();
  
          if (this.query) {
              throw new SQLException("Cannot update with query");
          } // end of if
  
          // ---
  
          final ArrayList<Parameter> params = 
              new ArrayList<Parameter>(parameters.values());
  
          final int idx = params.indexOf(null);
  
          if (idx != -1) {
              throw new SQLException("Missing parameter value: " + (idx+1));
          } // end of if
  
          // ---
  
          try {
              final UpdateResult res = this.handler.whenSQLUpdate(sql, params);
              final SQLWarning w = res.getWarning();
              final ResultSet k = (res.generatedKeys == null) 
                  ? EMPTY_GENERATED_KEYS.withStatement(this)
                  : generateKeysResultSet(res);
              
              return ImmutableTriple.of(res.getUpdateCount(), k, w);
          } catch (SQLException se) {
              throw se;
          } catch (Exception e) {
              throw new SQLException(e.getMessage(), e);
          } // end of catch
      }
docs: Executes update.
  @return Triple of update count, generated keys (or null)
  and optional warning