How does picard's MarkDuplicate handle unmapped reads?
From the Picard documentation:

DUPLICATION METRICS:
Metrics that are calculated during the process of marking duplicates within a stream of SAMRecords.


UNMAPPED_READS    The total number of unmapped reads examined. (Primary, non-supplemental)

It won't alter the flags on these reads, but it will count them in the summary report it generates.
You should be able to test this yourself with a small set of mapped + unmapped reads