I'd like to write a general purpose component that lets me run functions that
need to be wrapped inside a cftransaction, but which is clever enough to work
out when it's already nested inside another cftransaction.

It seems that when you catch a "Nested transactions not supported" exception
with a cftry, it actually is implicitly starting a new session (either rolling
back or committing the outer transaction, I'm not sure which)

e.g.

<cftransaction> <!--- My outer transaction --->

<!--- Do a bit of cfquerying --->
...

<cftry>
<cftransaction> <!--- My nested transaction --->
...
</cftransaction>

<cfcatch type="database"> <!--- Catch the "Nested transactions not supported "
exception --->
<!--- A bit of testing suggets the outer transaction has been committed or
rolled back once I get here --->
</cfcatch>
</cftry>

</cftransaction>

Any other kind of database exception doesn't cause the rollback (since I'm
catching it) but only this nested cftransaction issue.

Anyone else experienced this?