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