Here is a short example code following the outline Miles gave:
    using ITensors
    N = 4
    s = siteinds("S=1/2", N; conserve_qns=true)
    psi = randomMPS(s, n -> isodd(n) ? "Up" : "Dn"; linkdims=3)
    n = 3 # New site location
    sn = siteind("S=1/2", n; conserve_qns=true)
    ln = linkind(psi, 2)
    ln_sim = sim(ln)
    psin = onehot(sn => 1) * delta(dag(ln), ln_sim)
    psi[n] *= delta(dag(ln_sim), ln)
    insert!(psi.data, n, psin)
-Matt