グローバル変数じゃなくってプロパティだろ。
どっちにしてもわけわかな副作用を持たせるより
素直にメソッド分けるなりして単純愚直にやるのが定石。
BeginUpdate
try
 ...
 Succeed or Finish or Close;
finally
 EndUpdate;
end;
except内で必ず何か記述させるより正常なシーケンスで何か呼ばせる方が
呼び忘れたときの検出が容易で被害が少ないと思うし。