What is the correct context for applying a new particle setting or override it?
The bpy.ops.particle.new() is not the operator name you are after.

bpy.context.scene.objects.active = bpy.data.objects[edge_name]
bpy.ops.object.particle_system_add()
bpy.context.object.particle_systems.active.seed = seed_value


It is usually preferred to not use operators in scripts. For creating particle systems the method may appear a bit odd as adding a modifier seems to be the only non-operator way to do it. You might notice that this way doesn't need to alter the active or selected objects.

object = bpy.data.objects[edge_name]

if len(object.particle_systems) == 0:
    object.modifiers.new(name='particles',type='PARTICLE_SYSTEM')
    object.particle_systems.active.seed = seed_value


Once you have the particle system on the object you can either change each setting to suit or you can set it to use an existing particle setup.

object.particle_systems[0].settings = bpy.data.particles['MyGreatParticles']


While a new particle setting will be created each time you add a particle modifier and you will get more of them as you repeat this, by using an existing particle setup they will have zero user count and will not be saved to disk.