There's the idea of temporal tables, https://pgxn.org/dist/temporal_tables/
It's not a standard (I think) but it'd let you do a cascading delete and then be able to go and look at the old objects as they were at time of deletion too.
You'd need to do things very differently to show a list of deleted objects though.