code: public static <T> T runInNewTransaction(@NotNull final PlatformTransactionManager txManager,
              final String transactionName, final int isolationLevel, @NotNull final TransactionCallback<T> action) {
          final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
          def.setName(transactionName);
          def.setReadOnly(false);
          def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
          def.setIsolationLevel(isolationLevel);
          return new TransactionTemplate(txManager, def).execute(action);
      }
docs: Executes the modifying action in new transaction
  
  @param txManager
  transaction manager interface
  @param transactionName
  the name of the new transaction
  @param isolationLevel
  isolation level of the new transaction
  @param action
  the callback to execute in new tranaction
  
  @return the result of the action