in reply to Does each DBI 'do' start a new transaction?
If you look at the DBI documentation, you'll see that the do method returns a success or failure status. In the code you've posted, you're throwing away that information. Developer Tip: Don't Do That.
Assume that any operation can fail, at any time. As soon as there's a failure, you have to report that error.
In Section
Seekers of Perl Wisdom