Adding the BEGIN TRAN..COMMIT isn't a big deal should be easy and BOL has decent examples.
What you could do is in the SP that is being called write the information out using the @TABLE to whatever logging table you want and RETURN(@@ERROR). This should throw you down the failure path where you can exit gracefully...
Good Hunting!
AJ Ahrens
webmaster@kritter.net