Is this a one time update? Is there a way to have it do that when the source combinator changes?
Yup.
But you can script it to not be, ofc, e.g. if uid ~= 1324787 and game.tick % (5*60*60) == 0 then ota_update_from_uid = 1324787 end
to have all things using that code (except the uid=1324787 master) update themselves every 5 minutes (at game speed=1.0).
Or you can build a big red pushbutton "Deploy to Production" switch that sends a signal over the wires that will make code set that variable instead.
Or maybe have "code version" input signal, and have MLCs update themselves when it gets incremented past the current one they have hardcoded.
Etc etc.
Isn't Factorio all about designing this kind of things, anyway? :)