1. A method comprising: selecting a first transaction execution mode to begin a first transaction in an unbounded transactional memory (UTM) system having a plurality of transaction execution modes, the transaction execution modes including a plurality of hardware modes to execute within a cache memory of a processor, at least one hardware assisted mode to execute using transactional hardware of the processor and a software buffer, and at least one software transactional memory (STM) mode to execute without the transactional hardware, wherein the first transaction execution mode is selected to be a highest performant of the plurality of hardware modes if no pending transaction is executing in the at least one STM mode, and otherwise the first transaction execution mode is selected to be a lower performant one of the plurality of hardware modes; beginning execution of the first transaction in the first transaction execution mode; committing the first transaction if the first transaction completes and does not overflow the cache memory or violate a transaction semantic; and otherwise aborting the first transaction and selecting a new transaction execution mode to execute the first transaction.