For those with a similar problem, here's the solution to that problem.
I tried setting cache="consumer" for the listener-container, because as it turned out, the session and the consumer were closed and created again for each fetch, which caused the alter_subscriber and add_subscriber calls. Caching alone didn't help, as the session was reused in theory, but the transaction created a new one every time. What finally helped, was combining the caching with a DataSourceTransactionManager instead of the JmsTransactionManager, which I used before.
Code:
<bean id="jmsTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceJMS" />
</bean>
<jms:listener-container cache="consumer" client-id="${jms.clientid}" destination-type="durableTopic" connection-factory="connectionFactory" message-converter="myMessageConverter" concurrency="1-2" transaction-manager="jmsTransactionManager" >
<jms:listener subscription="subscriptionOne" destination="topicOne" ref="myService" method="myMethod" />
</jms:listener-container>
Instead of using the DataSourceTransactionManager, I guess one could use acknowledge="transacted" for a locally transacted Session.