Check out TransactionScope.  It does this exact function (minus some trivial flow control) without modifying the language, which most of us view as a bad thing anyway.