Spiny table.insert has an optional third argument (which actually goes in the 2nd spot and pushes over what is normally the second argument to the third spot.)
local a = {"a"; "b"; "c";}
table.insert(a, 2, "hello")
print(table.concat(a, "; ")) --[[a; hello; b; c]] |