I'm curious what others are building into their module install process in the event of an error partway through. For example, if your install script creates one or more bundles, fields and field instances, if an error occurs at some point during that process, do you handle it all like a transaction and back out what you have created to that point?