Это именно такие проблемы, которые решает двухфазная фиксация. Запись в очередь JMS и сохранение в базе данных должны быть частью одной глобальной транзакции 2PC, так что обе операции выполняются или не выполняются. Это гарантировало бы, что второй поток получил сообщение JMS только тогда и только тогда, когда пользователь был сохранен в базе данных.
Серверы приложений Java EE предоставляют диспетчеры транзакций с поддержкой XA (двухфазная фиксация). Если вы не работаете внутри сервера приложений Java EE, вы можете интегрировать его в приложение, например, Bitronix, Atomikos или другие автономные менеджеры транзакций.