shp_create() creates (or overwrites an existing) shapefile. shp_create also adds attribute fields to the dbf file - attribute definitions cannot be changed afterwards.
shp_add() adds a new shape to a shape file. Attribute values of the given shape are stored in the dbf file. Currently, only "simple" shape types are supported.