code: function generateSetConvertor(convObj) {
      if (!convObj) {
          return {
              write(arr) {
                  // Default to-null conversion for empty sets
                  if (!Array.isArray(arr) || arr.length === 0) {
                      return null;
                  } else {
                      return arr;
                  }
              },
              // XXX: Should we convert null to the empty array here?
              read: null
          };
      }
      const res = {
          write: null,
          read: null
      };
      if (convObj.write) {
          res.write = (valArray) => {
              if (!Array.isArray(valArray) || valArray.length === 0) {
                  // Empty set is equivalent to null in Cassandra
                  return null;
              } else {
                  return valArray.map(convObj.write);
              }
          };
      }
      if (convObj.read) {
          res.read = (valArray) => valArray.map(convObj.read);
      }
      return res;
  }
docs: Generates read/write conversion functions for set-typed attributes
  @param {Object} convObj the conversion object to use for individual values (from dbu.conversions)
  @return {Object} an object with 'read' and 'write' attributes