You're more correct than you knew!  The problem is that I'm using the `rescue` as a proxy for what I really care about.  What I need to know is, "Am I in a transaction that has gone sour where a rollback is required in order to successfully issue SQL commands?".  I was using the `rescue` as a proxy for that, when really it's only loosely correlated.  There are scenarios where the code might raise its own exception but the SQL connection is still functioning and no rollback is required.  There are scenarios where the code might trap the exception raised when an `execute` fails and then return with no exception to indicate that the connection requires a rollback before issuing commands.

It's just that I couldn't figure out how to test for what I really care about, so I used the proxy.  I think I've figured it out, so I've modified the test suite to be sneaky in both directions and now I'll go experiment and see if I can make it 100% reliable!