... and remember to get the user to define the insert/update/delete priorities: should a delete/insert pair be treated as an update? or should an insert/delete pair be treated as no-op? an insert/update pair should normally be allowed, but will delete/update (or any non-existing record) throw an error? Will the whole job be aborted on errors?
These sort of questions go way back to batch-processing and tape drives! - which makes me wonder just why anyone would ever want to do this on an RDB?