Cómo insertar un objeto JSON en una matriz anidada en una columna JSONB

De alguna manera, necesito empujar un objeto JSON a una matriz anidada de objetos JSON potencialmente existentes; consulte las "páginas" en el fragmento JSON a continuación.

{
    "session_id": "someuuid",
    "visitor_ui": 1,
    "pages": [
        {
            "datetime": "2016-08-13T19:45:40.259Z",
            "duration,": 0,
            "device_id": 1,
            "url": {
                "path": "/"
            }
        },
        {
            "datetime": "2016-08-14T19:45:40.259Z",
            "duration,": 0,
            "device_id": 1,
            "url": {
                "path": "/test"
            }
        },
        // how can i push a new value (page) here??
    ]
    "visit_page_count": 2
}

Soy consciente de lajsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean]) (aunque todavía me resulta un poco difícil de comprender), pero supongo que usar eso requeriría que primeroSELECT toda la columna JSONB, para descubrir cuántos elementos dentro de las "páginas" ya existen y qué índice empujarlo a usarjsonb_set, ¿derecho? Espero que haya una manera en Postgres 9.5 / 9.6 para lograr el equivalente de lo que sabemos en lenguajes de programación, por ejemplo.pages.push({"key": "val"}).

¿Cuál sería la mejor y más fácil forma de hacer esto con Postgresql 9.5 o 9.6?

Respuestas a la pregunta(1)

Su respuesta a la pregunta