Adding Particle System through blender script
It seems modifier_apply() only works for those modifiers that have an Apply button, but when you add a Particle System as a modifier the only button on the modifier is Convert, which calls bpy.ops.object.duplicates_make_real() , that's probably what you want instead of Apply.

Something like this:

import bpy

obj = bpy.context.active_object

if len(obj.particle_systems) == 0:
    obj.modifiers.new("part", type='PARTICLE_SYSTEM')
    part = obj.particle_systems[0]

    settings = part.settings
    settings.emit_from = 'VERT'
    settings.physics_type = 'NO'
    settings.particle_size = 0.1
    settings.render_type = 'OBJECT'
    settings.dupli_object = bpy.data.objects['Cube']
    settings.show_unborn = True
    settings.use_dead = True

    bpy.ops.object.duplicates_make_real()