Decorator реализующий интерфейс, а не конкретный класс, возможно ли?
Простите, а с какого неблагородного у вас репозиторий берёт на себя функции валидатора? 
Это не ООП уже, это костыль... 
Валидировать (бизнес-логика) надо до того, как данные попадут в репозиторий. 
А ошибки ниже (база-данных и прочее) репозиторий должен выкидывать наверх. 
Репозиторий знает о объекте только то, как он хранится и не более.  
Не пытайтесь запихнуть в него функционала более, чем он должен "тянуть".
Решение более чем очевидно:$rep = new ValidationRepository( new DBUsersRepository());

if ($validator->validate($modelsData)) {
    $rep->create();
} else {
    // а тут в зависимости от бизнес логики, обрабатываем ошибки.
}
Вместо поделок декораторов в "пыхе" используйте события. 
С ними более гибче будет.
Так, проблему понял (извините, больной слегка, соображаю плохо).
Перед нами явно ломаная абстракция: нам надо глубоко внедряться в объект. Тут одно из двух.
1) Бить объект на два, Repository с create() и update(), и DataStorage с save(). Тогда прослойкой между этими объектами можно пристроить валидатор.
2) Налаживать точку для подключения внешнего валидатора в save().
P.S. Декоратор и должен реализовать интерфейс, однако набор возможностей, которые он может делать с этим интерфейсом, невелик.