это зависит от того, где установлены границы вашей транзакции. как правило, каждый поток будет иметь свою собственную транзакцию и будет фиксировать / откатывать все сообщения в своей транзакции.
другой вариант - просто использовать общие стратегии исключений / повторов / DLQ для обработки отдельных ошибок сообщений, это проще и соответствует большинству требований