How about the :update / :up command? It's similar to the :write / :w command, but it doesn't actually write out the file if there were no changes made that need to be saved out.
(Kind of like the difference between :x and :wq ; if there are no changes to save, :x just quits without writing out the file, whereas :wq writes out the file regardless of whether there are any changes.)