When you push flow along an augmenting path, you update two things for each edge on the path:
Increase by the bottleneck (forward flow goes up).
Decrease by the bottleneck (backward flow goes down, or reverse flow increases).
This maintains the residual graph invariant. The forward capacity decreases, and the backward capacity increases by the same amount. You can represent flow implicitly: store only the residual capacities, not the flow values directly.