code: public long replace(String table, String nullColumnHack, ContentValues initialValues) {
          try {
              return insertWithOnConflict(table, nullColumnHack, initialValues,
                      CONFLICT_REPLACE);
          } catch (SQLException e) {
              DLog.e(TAG, "Error inserting " + initialValues, e);
              return -1;
          }
      }
docs: Convenience method for replacing a row in the database.
  
  @param table the table in which to replace the row
  @param nullColumnHack optional; may be <code>null</code>.
  SQL doesn't allow inserting a completely empty row without
  naming at least one column name.  If your provided <code>initialValues</code> is
  empty, no column names are known and an empty row can't be inserted.
  If not set to null, the <code>nullColumnHack</code> parameter
  provides the name of nullable column name to explicitly insert a NULL into
  in the case where your <code>initialValues</code> is empty.
  @param initialValues this map contains the initial column values for
  the row.
  @return the row ID of the newly inserted row, or -1 if an error occurred