Интересная идея. Я уверен, что это не поддерживается. Если вы выполняете откат, применяются настройки повторной доставки и вы фиксируете сообщение, что оно израсходовано.
Что вы можете сделать, это обработать сообщение в новой транзакции. Это либо удастся, либо провалится. Если это не удается, вы можете проверить исключение и решить, что вы хотите сделать. Если вы считаете, что он временный, вы можете откатить внешнюю / исходную транзакцию и получить повторную доставку. Если вы хотите, чтобы сообщение попадало в очередь недоставленных сообщений, вы можете опубликовать его вручную, а затем зафиксировать внешнюю транзакцию. Таким образом, вы также можете дифференцировать очереди недоставленных сообщений для технических и функциональных ошибок, если хотите.
Недостатком (за исключением сложности) является то, что внутренняя транзакция может быть зафиксирована, а внешняя ошибка по какой-то причине. В этом случае вы получите дубликаты, поэтому вам нужно убедиться, что вы справитесь с этим.