After you do the TABLEUPDATE() VFP thinks that the record has successfully been written back to the data store and updates the data associated with the cursor. The cursor has no idea that you've cancelled the transaction with a ROLLBACK since it happens outside the cursor's control.