It turns out that if you make a POST request instead of a PUT, and explicitly include the correct Content-Type header, CouchDB will generate the UUID for you.
For example, using cURL:
curl -X POST http://user:password@example.com:5984/exampledb/ \
-H "Content-Type: application/json" \
-d '{"amos": true}'