Is this like setf in lisp?

In the simplest case, yes, but in general no, lenses are more general