The Delete method ... may even not be called for some objects
It's always called when an object is GC'd. It isn't some random occurrence.
If you are talking about when the program ends, then sure, everything simply terminates, since the idea here is that you don't need to GC if in a moment nothing will exist.
If you need to Save state or something, you write an OnEnd and do something there.