Det er et rimeligt forslag i dit spørgsmål, men du har grundlæggende begrebet forkert.
Den første er, at du har overset konceptet, at arrays generelt har deres indgange, der starter ved et indeks på 0
for det første element, så din "positionering" er ude af én enhed i dette tilfælde og burde have været:
db.collection.update(
{ _id: tsId },
{$push: { 'subdoc.array': { "$each":["3", "4"], "$position": 3 } }}
)
Og da du nu indsætter i den rigtige position, så er dine elementer på det rigtige sted.