So I think shame about the quality of our code often leads to reluctance to offer up examples.
Having no shame, here's a Python 2 script I wrote ages ago that does a bunch of things. A lot of it, probably the wrong way.
I think a (much-simplified) version of this loop-through-the-fields to create a new record approach is probably a common pattern for pymarc scripts that output modified MARC?
On lines 1246 and 1248, it writes out the new record in either MARXML or MARC binary format.
It doesn't look like I do much with indicators, though, other than setting them explicitly or (on line 586) cloning the existing indicators from a field for a new field.
So, if this were simplified massively and rewritten for Python 3 and more recent versions of pymarc, it might be useful...