read only can be determined by examining engine of db. Emulate delete not raising if not finding element or invoking the block in that case (why???). If the underlying db file is not writable open in read-only mode. #new needs to be special because new on DBM is special is passed an explicit nil mode argument