Если что-то пошло не так, но ваш код был обновлен в базе данных, это звучит как очень ненадежное состояние. Вероятно, лучше использовать транзакцию и откат при исключении.
Что-то вроде (не проверено):
$this->db->beginTransaction();
try {
$SQL = "UPDATE addressbook SET valid = '0' WHERE id = :id";
$query = $this->db->prepare($SQL);
$query->bindValue(":id", $id);
$query->execute();
$this->db->commit();
return true;
//How do I know if record has been updated?
} catch (PDOException $e) {
$this->db->rollback();
return false;
}
Кроме того, вы, вероятно, не хотите смешивать свой JSON с этим кодом, отделять его и иметь что-то вне вашего класса с JSON.