code: public long replaceOrThrow(String table, String nullColumnHack,
              ContentValues initialValues) throws SQLException {
          return insertWithOnConflict(table, nullColumnHack, initialValues,
                  CONFLICT_REPLACE);
      }
docs: Convenience method for replacing a row in the database.
  Inserts a new row if a row does not already exist.
  
  @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. The keys should be the column names and the values the column values.
  @throws SQLException
  @return the row ID of the newly inserted row, or -1 if an error occurred