code: public List<GroovyRowResult> executeInsert(Map params, String sql, List<String> keyColumnNames) throws SQLException {
          return executeInsert(sql, singletonList(params), keyColumnNames);
      }
docs: A variant of {@link #executeInsert(String, List, List)}
  useful when providing the named parameters as named arguments.
  This variant allows you to receive the values of any auto-generated columns,
  such as an autoincrement ID field (or fields) when you know the column name(s) of the ID field(s).
  
  @param params         a map containing the named parameters
  @param sql            The SQL statement to execute
  @param keyColumnNames a list of column names indicating the columns that should be returned from the
  inserted row or rows (some drivers may be case sensitive, e.g. may require uppercase names)
  @return A list of the auto-generated row results for each inserted row (typically auto-generated keys)
  @throws SQLException if a database access error occurs
  @see Connection#prepareStatement(String, String[])
  @since 2.3.2