In my reading the context manager (eg. the "with" statement) is the way to absolutely ensure that code gets executed around a block.  Maybe overkill.  I get the sense that it was invented so that even with exception propagation you had this property.