diff --git a/moto/s3/models.py b/moto/s3/models.py
--- a/moto/s3/models.py
+++ b/moto/s3/models.py
@@ -2235,7 +2235,7 @@ def put_bucket_accelerate_configuration(
             raise InvalidRequest("PutBucketAccelerateConfiguration")
         bucket.set_accelerate_configuration(accelerate_configuration)
 
-    def put_bucket_public_access_block(
+    def put_public_access_block(
         self, bucket_name: str, pub_block_config: Optional[Dict[str, Any]]
     ) -> None:
         bucket = self.get_bucket(bucket_name)
diff --git a/moto/s3/responses.py b/moto/s3/responses.py
--- a/moto/s3/responses.py
+++ b/moto/s3/responses.py
@@ -922,7 +922,7 @@ def _bucket_response_put(
 
         elif "publicAccessBlock" in querystring:
             pab_config = self._parse_pab_config()
-            self.backend.put_bucket_public_access_block(
+            self.backend.put_public_access_block(
                 bucket_name, pab_config["PublicAccessBlockConfiguration"]
             )
             return ""

Good catch @bemoody - I'll raise a PR for this shortly
diff --git a/tests/test_s3/test_s3_config.py b/tests/test_s3/test_s3_config.py
--- a/tests/test_s3/test_s3_config.py
+++ b/tests/test_s3/test_s3_config.py
@@ -22,9 +22,7 @@ def test_s3_public_access_block_to_config_dict():
     }
 
     # Add a public access block:
-    s3_config_query_backend.put_bucket_public_access_block(
-        "bucket1", public_access_block
-    )
+    s3_config_query_backend.put_public_access_block("bucket1", public_access_block)
 
     result = s3_config_query_backend.buckets[
         "bucket1"

put_public_access_block marked as unimplemented for s3
In http://docs.getmoto.org/en/latest/docs/services/s3.html, `put_public_access_block` is marked as unimplemented.  `get_public_access_block` and `delete_public_access_block` are marked as implemented.

I notice that all three are marked as implemented for `s3control`.  (If I understand correctly, `S3Control.Client.put_public_access_block` is for setting *account-wide* restrictions, whereas `S3.Client.put_public_access_block` is for *per-bucket* restrictions.)

According to CHANGELOG.md, all three methods were implemented for both `s3` and `s3control` in version 1.3.16.


tests/test_s3/test_s3_config.py::test_s3_public_access_block_to_config_dict
tests/test_s3/test_s3_config.py::test_s3_config_dict tests/test_s3/test_s3_config.py::test_s3_lifecycle_config_dict tests/test_s3/test_s3_config.py::test_s3_acl_to_config_dict tests/test_s3/test_s3_config.py::test_list_config_discovered_resources tests/test_s3/test_s3_config.py::test_s3_notification_config_dict