Det är ett rättvist förslag i din fråga, men du har i princip fel koncept.
Den första är att du har missat konceptet att arrayer i allmänhet har sina poster som börjar med ett index på 0
för det första elementet, så din "positionering" är borta med en enhet i det här fallet och borde ha varit:
db.collection.update(
{ _id: tsId },
{$push: { 'subdoc.array': { "$each":["3", "4"], "$position": 3 } }}
)
Och eftersom du nu sätter in på rätt plats, så är dina element på rätt plats.