To create transaction 'boundaries', use 'async' on the activities. That makes them run in a separate transaction from the main process.
Also, using the StandardTransactionInterceptor instead of the SpringTransactionInterceptor will commit after each node.
Although if you invoke that from a transactional Spring service, you might end up with unintended behavior...
And how should I specify that jBPM makes use of a particular transactionManager-bean in Spring, instead of the default bean with name 'transactionManager'?