Subtracting an object and then deleting the object used to subtract within python script
Can add modifiers with obj.modifiers.new(name, type).  When a primitive is added it is the context object.  Changing the order made the large_cube context object, otherwise it can be set with context.scene.objects.active = large_cube.  

import bpy

context = bpy.context

#Small Cube
bpy.ops.mesh.primitive_cube_add(radius=1, location=(0, -1.5, 0))
small_cube = context.object

#Large Cube
bpy.ops.mesh.primitive_cube_add(radius=2, location=(0, 0, 0))
large_cube = context.object

mod = large_cube.modifiers.new("Boolean", type='BOOLEAN')
mod.operation = 'DIFFERENCE'
mod.object = small_cube

# large cube has context.
bpy.ops.object.modifier_apply(apply_as='DATA', modifier=mod.name)

context.scene.objects.unlink(small_cube)
bpy.data.objects.remove(small_cube)