Currently CordaPersistence can perform required operations, however it is:
not an interface;
provides access to some destructive operations like close().
Instead a lighter interface should be created, e.g. CordaTransactionSupport which will help with transaction aspect of the execution without giving access to the rest of the methods of CordaPersistence interface.
Also CordaTransactionSupport should be made accessible from AppServiceHub such that @CordaServices will be able to use it to start independent transactions in their own threads.