Transactions only make sense with transactional resources, as Karl says. Transactional resources are typically relationals, but they can also be message queues, XA-enabled legacy systems etc...

I suggest that f you want to test transactions, you use an embedded database such as HSQL. It's trivial to set up (look at the Spring examples) and will show you the requisite behavior. If you don't have any transactional resources, your JTA implementation may not end up doing anything.