Query if modifier exists on listed objects
You can access each objects modifiers as a dictionary by Object.modifiers. Then simply check if the name or type of your modifier is part of modifier collection (Modifier.name/Modifier.type) otherwise add a new modifier using ObjectModifiers.new() method:

import bpy

mod_name = "Subdivision"

for obj in bpy.context.selected_objects:  # Prefer using explicit variable names. Generally, i is used for counters, not objects
   if obj.type == "MESH" and mod_name not in obj.modifiers:         
      sub_div = obj.modifiers.new(name=mod_name, type='SUBSURF') 
      sub_div.show_only_control_edges = True 


Related: Check if active object has a modifier