Dick,
I'm a bit confused. If you use a transaction and you have deleted a record in the parent, a tableupdate will succeed if noone else has altered the record and fail if anyone else has altered the record. If the tableupdate fails you ROLLBACK and Tabelrevert(), if it succeeds you let the RI triggers do the cascading delete, if that fails the tableupdate fails. If the tableupdate fails you ROLLBACK. Once you have succeeded on the tableupdate of the parent, no one else can get a transaction started until you either rollback or end transaction.
You don't need to worry about what other user's have done until a tableupdate fails and you want to attempt to recover from the failure. Getfldstate() is supposed to tell you about the current buffer's condition, not the disk file.