public void undoDelete() throws SQLException {
        if (getShowDeleted() == false) {
            return;
        }
        // make sure we are on a row
        checkCursor();

        // don't want this to happen...
        if (onInsertRow == true) {
            throw new SQLException(resBundle.handleGetObject("cachedrowsetimpl.invalidcp").toString());
        }

        Row currentRow = (Row)getCurrentRow();
        if (currentRow.getDeleted() == true) {
            currentRow.clearDeleted();
            --numDeleted;
            notifyRowChanged();
        }
    }
Cancels deletion of the current row and notifies listeners that
a row has changed.
<P>
Note:  This method can be ignored if deleted rows are not being shown,
which is the normal case.

@throws SQLException if the cursor is not on a valid row
src/main/java/org/replicadb/rowset/sun/rowset/CachedRowSetImpl.java