Python 3.6, 96 9391 (9593-2) bytes
a,b=0,1
f=open(__file__,"r+");next(f);f.write(f"a,b={b,a+b}\n{next(f)}{f.seekseek(0)}");print(b)
hardcoding the filename would save 5 bytes (9088 bytes):
a,b=0,1
f=open("f","r+");next(f);f.write(f"a,b={b,a+b}\n{next(f)}{f.seekseek(0)}");print(b)
Saved some bytes thanks to @Artyer