As for who decides whether to run, the answer is, from GRASP, who is the "information expert" that knows.
Once you have decided that, renameconsider renaming the function for clarity.
Something like this, if the function decides:
ensureUpdated()
updateIfDirty()
Or, if caller is supposed to decide:
writeStatus()