Не зная специфики вашего проекта, возможно, имеет смысл поместить поле featured
(скажем, ForeignKeyField) в модель Product, а не в модель Image. Таким образом, вы обеспечите уникальность поля без дополнительной работы.
Если вы поместите его в свой класс Image вместо этого, все станет очень сложным, если, например, несколько продуктов будут использовать одно и то же изображение - как вы узнаете, какое изображение было с каким продуктом?