Как правильно реализовать модель в Symfony2 на базе MVC?
Логику модели обычно выносят в сервисный слой
Для работы с базой используют классы репозитарии. 
Сейчас популярен подход похожий на ваш c UserModel, создают класс — менеджер модели, туда инкапсулируют репозитарий модели, EntityManager итд…
Получается очень удобно вынести в него весь сервисный слой.
Примеры: 
github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Doctrine/UserManager.php
github.com/KnpLabs/KnpBundles/blob/master/src/Knp/Bundle/KnpBundlesBundle/Manager/BundleManager.php
В таком случае, либо так, либо как сказали выше, использовать EntityManager (я бы выбрал 2-е в большинстве случаев, но зависит от задачи всё же)