hi tim,
maybe i'm overlooking something, but i cannot see why
you should want to split "update" into "delete" & "create" (assuming that your lock mechanism works ... ;-) )
a simple lock-change-unlock will do the same, don't you think?
plus (better: minus): an updated record can have a new number / position in the data file. this would make the algorithm unneccesary complicated. you'll be glad about consistent record numbers when it comes to gui-handling...
the rest is okay, obviously.
many greetings,
jan