Как ограничить количество записей в таблице с определенным полем?
start transaction
select count(*) from ... where user_id = ... for update
и дальше на ЯП смотрим - можно вставлять или нет.
Делать COUNT(*) перед INSERT например