JdbcTemplate использует DataSource, поэтому не гарантируется, что вы будете использовать то же соединение для оператора LOCK TABLE и всего, что вы собираетесь сделать при следующем вызове JdbcTemplate. Поэтому важно, чтобы вы сделали это в транзакции. Установите PlatformTransactionManager, либо DataSourceTransactionManager в источнике данных JdbcTemplate, либо JtaTransactionManager, если JdbcTemplate использует предоставленный контейнером JSDI DataSource. Вы можете аннотировать свой метод как @Transactional или создать транзакцию программно с помощью PlatformTransactionManager.