Use output of the Position function to modify an expression?

Hello

In the following expression

 exp = HoldForm[#1^2 "+"] & /@ {4, 1, 7}

I want to remove the last “+”. Its position I get with:

pos = Last[Position[exp, "+"]] 

I know it’s correct because :

exp[[##]] &  @@  pos == "+"  (* True*)

But

exp[[##]] &  @@  pos = ""

will not work. I cannot understand it since

exp[[3, 1, 2]] = ""

works OK.

Please explain what is going on ? Thanks

ReplacePart is probably a better way to do this

exp // ReplacePart[pos -> ""]

Yes ReplacePart does the job in a better way. But why Part won’t work as I coded baffles me. Thanks.