code: @Override
      protected void i_addRow(Connection conn,
                              String table,
                              String[] columns,
                              String[] values,
                              boolean[] numeric) throws SQLException {
  
          // prepare insert statement
          StringBuilder sql = new StringBuilder(128);
          sql.append("INSERT INTO ").append(table).append(" (");
          for (int i = 0; i < columns.length; i++) {
              if (i > 0) {
                  sql.append(", ");
              }
              sql.append(columns[i]);
          }
          sql.append(") VALUES (");
          for (int i = 0; i < columns.length; i++) {
              if (i > 0) {
                  sql.append(", ");
              }
              if (values[i] == null) {
                  sql.append("NULL");
              } else {
                  sql.append('?');
              }
          }
          sql.append(')');
          if (logger.isDebugEnabled()) {
              logger.debug("About to execute: {}", sql.toString());
          }
          PreparedStatement stmt = conn.prepareStatement(sql.toString());
  
          try {
              // populate values
              int varIndex = 0;
              for (int i = 0; i < values.length; i++) {
                  if (values[i] != null) {
                      varIndex++;
                      if (numeric != null && numeric[i]) {
                          setNumeric(stmt, varIndex, columns[i], values[i]);
                      } else {
                          stmt.setString(varIndex, values[i]);
                      }
                  }
              }
  
              // execute
              stmt.executeUpdate();
  
          } finally {
              closeStatement(stmt);
          }
  
      }
docs: Adds a new row.
  
  @throws SQLException
  if the row could not be added.