whole_func_string: function(criteria, cb) {
          var self = this;
          this.first(criteria, function(err, entity) {
            if (err) { return cb(err); }
            if (entity) {
              cb(null, entity);
            } else {
              self.create(criteria, cb);
            }
          });
        }
func_code_string: function(criteria, cb) {
          var self = this;
          this.first(criteria, function(err, entity) {
            if (err) { return cb(err); }
            if (entity) {
              cb(null, entity);
            } else {
              self.create(criteria, cb);
            }
          });
        }
func_documentation_string: searches for a record with criteria, creates it with criteria if not found