1) Session::push is not part of SessionInterface, and I don't know that it should be relied on
2) Session::push as implemented is intended to merge additional array values into an existing session variable which has an array value. This does not sound like a conventional "push/pop" kind of thing, and I think the method is mis-named. A better name for the method might be "updateValues".
This does not look like a stack data structure, where push/pop make sense.