public void updateString(int columnIndex, String x) throws SQLException {
        // sanity check.
        checkIndex(columnIndex);
        // make sure the cursor is on a valid row
        checkCursor();

        getCurrentRow().setColumnObject(columnIndex, x);
    }
Sets the designated column in either the current row or the insert
row of this <code>CachedRowSetImpl</code> object with the given
<code>String</code> object.
<P>
This method updates a column value in either the current row or
the insert row of this rowset, but it does not update the
database.  If the cursor is on a row in the rowset, the
method {@link #updateRow} must be called to mark the row as updated.
If the cursor is on the insert row, the method {@link #insertRow}
must be called to insert the new row into this rowset and mark it
as inserted. Both of these methods must be called before the
cursor moves to another row.
<P>
The method <code>acceptChanges</code> must be called if the
updated values are to be written back to the underlying database.

@param columnIndex the first column is <code>1</code>, the second
       is <code>2</code>, and so on; must be <code>1</code> or larger
       and equal to or less than the number of columns in this rowset
@param x the new column value
@throws SQLException if (1) the given column index is out of bounds,
           (2) the cursor is not on one of this rowset's rows or its
           insert row, or (3) this rowset is
           <code>ResultSet.CONCUR_READ_ONLY</code>
src/main/java/org/replicadb/rowset/sun/rowset/CachedRowSetImpl.java