No, you don’t need to read a parameter before setting it. I don’t know what you mean by “plug-in,” nor do I have any idea what C# libraries, interfaces, methods, etc you are using. As such, it is impossible to just give you the syntax for what you desire.
The following code snippet is a working Python example to set RC7_OPTION to a value of 300 using the pymavlink library, assuming you have a MAVLink connection available on localhost:14550:
from pymavlink import mavutil
connection = mavutil.mavlink_connection('tcp:localhost:14550')
t_sys = connection.target_system
t_comp = connection.target_component
connection.mav.param_set_send(t_sys, t_comp, b'RC7_OPTION', 300, mavutil.mavlink.MAV_PARAM_TYPE_INT8)
If you want to use onboard GPIO buttons to change parameters, suggest you use an onboard Lua script for that.