The you are looking for is:
hsh[key] = value
ACTIVATION_CHANCE['PIERCE'] = 'self.pow * 10'ruby-doc.org
is a good reference for these sorts of things.
However, I would caution against this for a few reasons. The first is that you are modifying a constant during runtime. While this is technically possible, it is generally bad practice and depending on the script implementation it could be a constant for a reason. Which brings me to #2, depending on the implementation of the script, the constant may not even be referenced anymore by the time you alter it (it could use some runtime evals, it might have parsed through the entire hash and defined methods for each once and only once). So if nothing changes, this could be the reason why.
Additionally, constants are bound to the current instance of the program and therefore if you were to enter this map (activating the event) then save, then load the game, your constant would be back to the original values (unless the event is run again).
So, this brings me to a slightly cleaner implementation. Since it looks like the values of the ACTIVATION_CHANCE are going to be eval'd at some point, just put your branch in there. For example, the line:
'PIERCE' => 'target.pdef'
'PIERCE' => '$game_switches ? self.pow * 10 : target.pdef'
Assuming switches are implemented in XP as they are in VX, the result of the function when evaluated would be power times 10 if switch 50 is on, and the targets physical defense if the switch is off, allowing you to flip a switch and change all the formulas. You could also change the switch conditional to a map conditional, but as I have never used XP I don't know what method to call to determine the current map's ID and/or name, and I would recommend asking that particular question on an appropriate board. If you have further questions about the Ruby implementation, feel free to ask here.