Возможно, вы ищете first_or_create
или что-то похожее:
http://guides.rubyonrails.org/v3.2.17/active_record_querying.html#first_or_create
Только один поток одновременно будет обращаться к вашим bean-компонентам. Это зависит от сервера приложений. Таким образом, вы не должны использовать синхронизацию из ваших bean-компонентов. Вот почему не потокобезопасный объект, такой как EntityManager, может быть значением экземпляра и не иметь проблем с синхронизацией.