Hi Vivek!
Another option is to use ccBPM (if you use dual stack PI system).
Also you may consider JDBC-lookup in your request mapping to get records that already exist in your DB table and remove it from your payload. But in this case, I guess, you should use some kind of "tricky" way to store your cancelled records info in request mapping and restore it in response mapping in order to create correct error report in response structure.
Regards, Evgeniy.