1. A machine readable medium including code, which when executed by a machine, causes the machine to perform the operations of: executing a transaction; aborting the transaction in response to detecting a data conflict or determining insufficient resources exist during execution of the transaction; and selecting a hardware mode or a software mode of transactional execution with a manager, wherein in the hardware mode executing the transaction is attempted in hardware and in the software mode executing the transaction is attempted in software.