UPDATE messages
SET s_deleted = IF(sender = :sender, 1, s_deleted),
r_deleted = IF(recipient = :recipient, 1, r_deleted)
WHERE id = :id
Както можете да видите, "трикът" е просто да зададете съществуваща стойност на колона, когато критериите не са изпълнени, така че да се актуализира само когато е необходимо.