Transactions enable us to delegate many elements of exception handling and recovery to the TPM and the RMs, simplifying our code and freeing us to think about application logic instead.
For example, Spring 2.0 introduced the PersistenceExceptionTranslationPostProcessor to automatically enable data access exception translation for any object carrying the @Repository annotation.
An error in processing one of the web service methods (which does not enable the method to finish successfully) is exposed as a SOAP exception that your code can catch.