Hook_mail, drupal_mail and MIME mail
No, the part in the documentation is not referring to file uploads, but indeed to mail sending. The expected array structure can look like this:

'attachments' =&gt; array(
  array(
    'filename' =&gt; 'text.csv',
    'filepath' =&gt; $filepath,
    'filemime' =&gt; 'application/csv',
  ),
),


or

'attachments' =&gt; array(
  array(
    'filename' =&gt; 'text.csv',
    'filecontent' =&gt; 'test content',
    'filemime' =&gt; 'application/csv',
  ),
),


Also have a look at this for another example: https://drupal.org/comment/5617230#comment-5617230

Edit: The attributes that you can use


filename: This is the name of the file as it will appear for the mails recipient. So you can freely choose this name.
filepath: If you want to attach a file that exists on your server, then this is the attribute that you want to use. Specifiy the full path to the file (e.g. image).
filecontent: If the attachement doesn't exist on your server but you want to send some content as an attachment, then you can use this attribute to pass on the content.
filemime: Here you can specifiy the mimetype of your attachment. This information gives the users mail application some basic information what to do with the attachment. An attachment of type application/pdf will probably open in the local pdf application, if the mimetype is image/jpeg it will probably open in an image viewer application.


filepath and filecontent are somewhat mutual exclusive. I'm not sure what will be the result, when you specify both.