There are other potential transaction configurations, depending upon the database platform and the method of access. SQL Server runs, by default, in AutoCommit mode although it can be disabled, requiring explicit COMMIT or ROLLBACK calls. Oracle does not run in AutoCommit mode by default (in fact I have never determined if it can; I doubt it). Of course, neither of the above comments really matter if the developer is using a managed data provider, all of which (along with the underlying ODBC and OleDB layers) implement some form of AutoCommit heuristics as far as I know, forcing the behavior to act as you describe. I'm mainly making the distinction between exec'ing SQL at the command line versus through a managed provider, on different DB servers. Have a good weekend.
The most exciting phrase to hear in science, the one that heralds the most discoveries, is not 'Eureka!' ('I found it!') but 'That's funny...’