public boolean isFirst() throws SQLException {
        // this becomes nasty because of deletes.
        int saveCursorPos = cursorPos;
        int saveAbsoluteCursorPos = absolutePos;
        internalFirst();
        if (cursorPos == saveCursorPos) {
            return true;
        } else {
            cursorPos = saveCursorPos;
            absolutePos = saveAbsoluteCursorPos;
            return false;
        }
    }
Indicates whether the cursor is on the first row in this
<code>CachedRowSetImpl</code> object.

@return <code>true</code> if the cursor is on the first row;
        <code>false</code> otherwise or if the rowset contains no rows
@throws SQLException if an error occurs
src/main/java/org/replicadb/rowset/sun/rowset/CachedRowSetImpl.java