code: public int executeUpdate(final String sql, final String[] columnNames) throws SQLException {
      return executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
    }
docs: Executes the given SQL statement and signals the driver that the auto-generated keys indicated
  in the given array should be made available for retrieval. This array contains the names of the
  columns in the target table that contain the auto-generated keys that should be made available.
  The driver will ignore the array if the SQL statement is not an <code>INSERT</code> statement,
  or an SQL statement able to return auto-generated keys (the list of such statements is
  vendor-specific).
  
  @param sql         an SQL Data Manipulation Language (DML) statement, such as
  <code>INSERT</code>,
  <code>UPDATE</code> or <code>DELETE</code>; or an
  SQL statement that returns nothing, such as a DDL statement.
  @param columnNames an array of the names of the columns that should be returned from the
  inserted row
  @return either the row count for <code>INSERT</code>, <code>UPDATE</code>, or
  <code>DELETE</code> statements, or 0 for SQL statements that return nothing
  @throws SQLException                    if a database access error occurs, this method is
  called on a closed
  <code>Statement</code>, the SQL statement returns a
  <code>ResultSet</code>
  object, or the second argument supplied to this method
  is not a <code>String</code> array whose elements are
  valid column names