Hi Manas,
As per your requirement, the functionality is custom Functionality. So, the BadI implementation is the best way to go forward. You can use the method which you mentioned here to remove the entries from the custom table. You need to ensure that the entries are locked properly before deleting them from the database.
Also, you need not call the COMMIT WORK from the badI. As, this is the responsibility of the framework to ensure that the data is saved in the database correctly.
Let me know if you need any more technical inputs from my end.
Hope this helps.
Thanks,
Samantak.