From what I've read is that if you use a script tool or I'm assuming a python add-in within ArcMap, it will automatically honor your selected set. I'm not sure of the best way to determine if there is a selection but one thought is that you could run a couple of search cursors. The first one will give you the number of records in the input layer or if there is a selection, just the number of selected records. The second would be on the Feature Class. Compare the two counts. If the layer has less then you know you have selected records.Completely untested but maybe something like this:
import arcpy
# SET THE LAYER
lyr = "Parcel_Poly"
# SET THE FEATURE CLASS
fc = "C:\\parcels.gdb\\parcels"
# SEARCH THE LAYER
lyr_rows = arcpy.da.SearchCursor(lyr, "PIN")
lyr_Count = 0
for lyr_row in lyr_rows:
lyr_Count += 1
del lyr_row, lyr_rows
# SEARCH THE FC
fc_rows = arcpy.da.SearchCursor(fc, "PIN")
fc_Count = 0
for fc_row in fc_rows:
fc_Count += 1
del fc_row, fc_rows
if lyr_Count == fc_Count:
#Do Something