Paste with mask=img2 would handle the transparent problem:
mask=img2
img1.paste(img2, position, mask=img2)