While this seems like a better way to do it, at least in the development/sandbox environment using the transaction is >30 times faster. I'm going to use this proposed method as the backup if there is no transaction though.