@contextmanager
    def update(self):
        ctx = self.begin_update()
        try:
            yield ctx
        except:
            exc_info = sys.exc_info()
            self.finish_update(ctx, exc_info)
        else:
            self.finish_update(ctx)
Opens the artifact for modifications.  At the start the dirty
dataset/ETHPy150Open lektor/lektor/lektor/builder.py/Artifact.update