Add modifier to selected and another to active object
I'd suggest not using modifier add operator and use modifiers.new(name, type) instead.  Avoids hassle of changing the active object and also if using the op to add a second modifier of the same type, would need to access it via obj.modifiers[-1] as it will be named "Solidify.001" or somesuch.

Result of Running Script on 2 default planes


import bpy
context = bpy.context

obj = context.active_object
# add a solidify modifier on active object
mod = obj.modifiers.new("Solidify", 'SOLIDIFY')
# set modifier properties
mod.thickness = 0.3
obj.location.z += 0.15
for o in context.selected_objects:
    if o == obj:
        continue
    # see if there is already a modifier named "SelectedSolidify" and use it
    mod = o.modifiers.get("SelectedSolidify")
    if mod is None:
        # otherwise add a modifier to selected object
        mod = o.modifiers.new("SelectedSolidify", 'SOLIDIFY')
    mod.thickness = 0.1
    o.location.z = 0.05
    # add a boolean mod
    boolmod = obj.modifiers.new("Bool", 'BOOLEAN')
    boolmod.object = o
    boolmod.solver = 'CARVE'
    boolmod.operation = 'DIFFERENCE'